Use a weak reference instead of ref()/unref(). (#60857, reported by Joshua
authorSoeren Sandmann <sandmann@daimi.au.dk>
Mon, 2 Feb 2004 23:26:55 +0000 (23:26 +0000)
committerSøren Sandmann Pedersen <ssp@src.gnome.org>
Mon, 2 Feb 2004 23:26:55 +0000 (23:26 +0000)
Tue Feb  3 00:14:36 2004  Soeren Sandmann  <sandmann@daimi.au.dk>

* gdk/x11/gdkgeometry-x11.c (queue_item_free, gdk_window_queue):
Use a weak reference instead of ref()/unref(). (#60857, reported
by Joshua N Pritikin)

* gdk/gdkimage.c (scratch_image_info_for_depth): Formatting fix.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gdk/gdkimage.c
gdk/x11/gdkgeometry-x11.c

index 48d1f5acacffad836186d03f05b4a6efe3f351b1..4b9f97292a21d38ca373b54cb25bbf1a5990e4fb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Tue Feb  3 00:14:36 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
+
+       * gdk/x11/gdkgeometry-x11.c (queue_item_free, gdk_window_queue):
+       Use a weak reference instead of ref()/unref(). (#60857, reported
+       by Joshua N Pritikin)
+
+       * gdk/gdkimage.c (scratch_image_info_for_depth): Formatting fix.
+
 Tue Feb  3 00:15:17 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtktreeprivate.h (struct _GtkTreeViewPrivate): Add 
index 48d1f5acacffad836186d03f05b4a6efe3f351b1..4b9f97292a21d38ca373b54cb25bbf1a5990e4fb 100644 (file)
@@ -1,3 +1,11 @@
+Tue Feb  3 00:14:36 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
+
+       * gdk/x11/gdkgeometry-x11.c (queue_item_free, gdk_window_queue):
+       Use a weak reference instead of ref()/unref(). (#60857, reported
+       by Joshua N Pritikin)
+
+       * gdk/gdkimage.c (scratch_image_info_for_depth): Formatting fix.
+
 Tue Feb  3 00:15:17 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtktreeprivate.h (struct _GtkTreeViewPrivate): Add 
index 48d1f5acacffad836186d03f05b4a6efe3f351b1..4b9f97292a21d38ca373b54cb25bbf1a5990e4fb 100644 (file)
@@ -1,3 +1,11 @@
+Tue Feb  3 00:14:36 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
+
+       * gdk/x11/gdkgeometry-x11.c (queue_item_free, gdk_window_queue):
+       Use a weak reference instead of ref()/unref(). (#60857, reported
+       by Joshua N Pritikin)
+
+       * gdk/gdkimage.c (scratch_image_info_for_depth): Formatting fix.
+
 Tue Feb  3 00:15:17 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtktreeprivate.h (struct _GtkTreeViewPrivate): Add 
index 48d1f5acacffad836186d03f05b4a6efe3f351b1..4b9f97292a21d38ca373b54cb25bbf1a5990e4fb 100644 (file)
@@ -1,3 +1,11 @@
+Tue Feb  3 00:14:36 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
+
+       * gdk/x11/gdkgeometry-x11.c (queue_item_free, gdk_window_queue):
+       Use a weak reference instead of ref()/unref(). (#60857, reported
+       by Joshua N Pritikin)
+
+       * gdk/gdkimage.c (scratch_image_info_for_depth): Formatting fix.
+
 Tue Feb  3 00:15:17 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtktreeprivate.h (struct _GtkTreeViewPrivate): Add 
index 48d1f5acacffad836186d03f05b4a6efe3f351b1..4b9f97292a21d38ca373b54cb25bbf1a5990e4fb 100644 (file)
@@ -1,3 +1,11 @@
+Tue Feb  3 00:14:36 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
+
+       * gdk/x11/gdkgeometry-x11.c (queue_item_free, gdk_window_queue):
+       Use a weak reference instead of ref()/unref(). (#60857, reported
+       by Joshua N Pritikin)
+
+       * gdk/gdkimage.c (scratch_image_info_for_depth): Formatting fix.
+
 Tue Feb  3 00:15:17 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtktreeprivate.h (struct _GtkTreeViewPrivate): Add 
index 61ac976bd7fa41575d6cc6a07e2757db7ee0a949..c7ef2efd906cec9177e65019000cd26d63f9a9ee 100644 (file)
@@ -247,7 +247,7 @@ scratch_image_info_for_depth (GdkScreen *screen,
   image_info->depth = depth;
   image_info->screen = screen;
 
-    /* Try to allocate as few possible shared images */
+  /* Try to allocate as few possible shared images */
   for (i=0; i < G_N_ELEMENTS (possible_n_images); i++)
     {
       if (allocate_scratch_images (image_info, possible_n_images[i], TRUE))
index 16480277d08b53d9c3480d270bab462bba42ad77..0ad1b5d64ad72982591a415582916b4d734c3dd5 100644 (file)
@@ -914,7 +914,11 @@ queue_delete_link (GQueue *queue,
 static void
 queue_item_free (GdkWindowQueueItem *item)
 {
-  g_object_unref (item->window);
+  if (item->window)
+    {
+      g_object_remove_weak_pointer (G_OBJECT (item->window),
+                                   (gpointer *)&(item->window));
+    }
   
   if (item->type == GDK_WINDOW_QUEUE_ANTIEXPOSE)
     gdk_region_destroy (item->u.antiexpose.area);
@@ -979,12 +983,13 @@ gdk_window_queue (GdkWindow          *window,
          tmp_list = next;
        }
     }
-      
-  g_object_ref (window);
 
   item->window = window;
   item->serial = NextRequest (GDK_WINDOW_XDISPLAY (window));
   
+  g_object_add_weak_pointer (G_OBJECT (window),
+                            (gpointer *)&(item->window));
+
   g_queue_push_tail (display_x11->translate_queue, item);
 }